#ifndef _OGRE_APP_H_
#define _OGRE_APP_H_

#include "OgreCamera.h"
#include "OgreEntity.h"
#include "OgreLight.h"
#include "OgreRenderWindow.h"
#include "OgreSceneManager.h"
#include "OgreSceneNode.h"

#include "Listener.h"

class OgreApp
{
	public:
		OgreApp();
		~OgreApp();
		void start();

	protected:
		void createScene();	
	
	private:
		DeviceListener *listener;		// Listener

		Ogre::Root *root;				// Root SceneNode
		Ogre::SceneManager *sceneMgr;	// Current SceneManager
		Ogre::Camera *camera;			// Cameras attached to each viewport
		Ogre::Viewport *viewPort;		// Viewports to render into
		Ogre::RenderWindow *win;		// Ogre Window
		Ogre::Entity *ent;				// The entity of the object we are animating
		Ogre::SceneNode *node;			// The SceneNode of the Entity
		Ogre::Light *light;				// A spotlight on the scene
};
#endif
